图像和纹理最佳实践
渲染大型纹理和图像时所需的内存带宽可能会导致应用程序的速度下降。下面这些提示可以帮助您创建和使用最佳图像和纹理,从而提高应用程序的性能:
- 优化应用程序性能的最简单方法是使用更小的数据量纲,以减少图像中的细节量。请参阅 调整数据大小。
- Kanzi 支持自适应可伸缩纹理压缩 (ASTC)、AMD 纹理压缩 (ATC)、Ericsson 纹理压缩 (ETC)、PNG 压缩和 PowerVR 纹理压缩 (PVRTC) 方法来压缩纹理中使用的图像。请参阅 压缩纹理。
- 当用户在具有多核处理器的环境中运行 Kanzi 应用程序时,Kanzi 会自动使用多个 CPU 内核将 kzb 文件中的 GPU 资源加载到 RAM 中。 Kanzi 使您可以配置希望应用程序使用的内核数。请参阅并行加载资源。
- 使用 mipmap 从一个较大的纹理创建一组缩小的子级。Mipmap 使 GPU 内存使用增加三分之一,但提高了无需对整个纹理进行采样时的性能。缩放纹理节点时,请务必使用 mipmap 来提高性能。请参阅 使用 mipmap。
- 应用纹理过滤,以提高质量或性能。如果您已经熟悉应用程序的行为,这种方法可能会非常有效。请参阅 过滤纹理。
- Use a tile atlas to improve application loading times and framerate by decreasing the number of image files that an application must load and texture switches during application runtime. See Using a tile atlas.
- 对于其大小并非二的幂的纹理,OpenGL ES 2 规格不需要过滤或 mipmap。为使 Kanzi 正确渲染您的纹理,请确保:
- 您的目标设备支持 GL_OES_texture_npot 扩展。
或- 纹理的大小是二的幂。
或- 纹理将 Mipmap 模式 (Mipmap Mode) 属性设为基准 (Base) 并将环绕模式 (Wrap Mode) 属性设为限制 (Clamp)。
或- 在 > 中启用向上取整图像尺寸至数值最接近的 2 的幂 (Round up Image Dimensions to Nearest Power of Two) 属性。
- 确保所有纹理都将 Mipmap 模式 (Mipmap Mode) 属性至少设为最近点 (Nearest)。用于非常小的纹理(例如 4x4 像素和更小的纹理),将 Mipmap 模式 (Mipmap Mode) 值设为基准 (Base)。
- 将只包含扁平颜色的纹理的大小保持在 4x4 像素以下,并设置纹理设置 (Texture Settings)属性:
- 缩小过滤器 (Minification Filter) 为最近点 (Nearest)
- 放大过滤器 (Magnification Filter) 为最近点 (Nearest)
- Mipmap 模式 (Mipmap Mode) 为基准 (Base)
- 当使用文本块 (Text Block) Kanzi 时,为字体与字号的每种组合创建图形缓存纹理。 您可以设置图形缓存纹理的高度和宽度,以便在图形缓存纹理填满时或者为了优化 Kanzi 应用程序的性能而调整图形缓存纹理的大小。请参阅 图形缓存纹理大小。
- 当您的 Kanzi 应用程序使用包含无效 ICC 配置文件的 PNG 图像时,Kanzi 会在应用程序运行时打印一条警告到日志。要从所有 PNG 图像中移除 ICC 配置文件,请在 > 中启用从 PNG 图像移除 ICC 配置文件 (Remove ICC Profile From PNG Images)属性。
当您启用属性时,Kanzi 会在 kzb 文件导出期间从您工程中的 PNG 图像中移除 ICC 配置文件。
另请参阅
调整数据大小
并行加载资源
使用 mipmap
Using a tile atlas
压缩纹理
过滤纹理
排除应用程序的性能问题
最佳实践
纹理
打开导航